package com.org.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.org.bean.PhoneBean;
import com.org.dao.PhoneBeanMapper;
import com.org.service.IPhoneService;

@Service("proS")
public class PhoneServiceImpl implements IPhoneService {

	// 依赖注入【反转控制】
	// 面向接口的编程
	@Resource
	private PhoneBeanMapper proD; // 按类型匹配进行注入
	
	/**
	 * 逻辑删除商品手机
	 */
	@Override
	public int logicDeleteByPrimaryKey(Integer phoneId) {
		// 调用dao层进行逻辑删除
		int i = proD.logicDeleteByPrimaryKey(phoneId);
		return i;
	}

	/**
	 * 新增手机信息
	 */
	@Override
	public int saveOrUpdatePhone(PhoneBean phoneB) {
		// 调用Dao层的业务逻辑处理，进行管理员信息新增或修改操作
		// 默认返回值
		int i = 0;
		if (phoneB != null) {
			// 新增，主键为null
			if (phoneB.getPhoneid() == null) {
				i = proD.insertSelective(phoneB);
			} else {
				// 修改，主键不为null
				i = proD.updateByPrimaryKeySelective(phoneB);
			}
		}
		return i;
	}

	
	/**
	 * ajax查询
	 */
	@Override
	public List<PhoneBean> queryInfoByParams(PhoneBean phoneB) {
		// 调用Dao层进行业务逻辑查询
		List<PhoneBean> lstPros = proD.selectInfosBySelective(phoneB);
		// 返回结果
		return lstPros;
	}

	
	
	@Override
	public PhoneBean selectByPrimaryKey(Integer phoneId) {
		// 调用Dao层进行业务逻辑查询
		PhoneBean phoneB = proD.selectByPrimaryKey(phoneId);
		// 返回结果
		return phoneB;
	}

	
	/**
	 * 查询所有未删除商品的信息
	 */
	@Override
	public List<PhoneBean> selectAllInfos() {
		// 调用Dao层进行业务逻辑查询
		List<PhoneBean> lstPros = proD.selectAllInfos();
		// 返回结果
		return lstPros;
	}

	/**
	 * 查询所有已经删除的商品信息
	 */
	@Override
	public List<PhoneBean> selectAllInfos2() {
		// 调用Dao层进行业务逻辑查询
		List<PhoneBean> lstPros = proD.selectAllInfos2();
		// 返回结果
		return lstPros;
	}
	
	@Override
	public List<PhoneBean> selectByPrimaryKeyList(Integer phoneId) {
		// 调用Dao层进行业务逻辑查询
		List<PhoneBean> lstPros = proD.selectByPrimaryKeyList( phoneId);
		// 返回结果
		return lstPros;
	}

	@Override
	public int updateByPrimaryKeySelective(PhoneBean phoneB) {
		// 调用dao层进行修改
		int i = proD.updateByPrimaryKeySelective(phoneB);
		return i;
	}

	/**
	 * 模态框中信息的查询
	 */
	@Override
	public List<PhoneBean> selectAllInfosBySelective() {
		// 调用Dao层进行业务逻辑查询
		List<PhoneBean> lstPros = proD.selectInfosBySelective(new PhoneBean());
		// 返回结果
		return lstPros;
	}

	/**
	 * 还原手机商品
	 */
	@Override
	public int logicBackByPrimaryKey(Integer phoneId) {
		// 调用dao层进行逻辑还原
		int i = proD.logicBackByPrimaryKey(phoneId);
		return i;
	}

	/***
	 * 彻底删除手机商品
	 */
	@Override
	public int deleteByPrimaryKey(Integer phoneId) {
		// 调用dao层进行彻底删除商品
		int i = proD.deleteByPrimaryKey(phoneId);
		return i;
	}

	/**
	 * 清空回收站
	 */
	@Override
	public int deleteAllDeleted() {
		int i = proD.deleteAllDeleted();
		return i;
	}

	/**
	 * 多选删除回收站的商品
	 */
	@Override
	public int deleteMany(Integer[] ids) {
		return proD.deleteMany(ids);
	}

	
}
